/*
 * Created on Apr 24, 2006
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package ar.edu.utn.frba.gdaia.src.action;

import java.util.Iterator;
import java.util.Map;

import ar.edu.utn.frba.gdaia.src.domain.ReglaElemental;
import ar.edu.utn.frba.gdaia.src.main.Cerebro;

/**
 * @author Patricio, Fernando, Juan Pablo, Pablo
 * 
 * Busca la regla interna a aplicar dado el cerebro con su situacion inicial
 * interna. Retorna la REGLA INTERNA A APLICAR
 */
public class FindRuleCommand extends Command {

	public void execute(Map parameters) {

		Cerebro cerebro = (Cerebro) parameters.get(Command.CEREBRO);
		ReglaElemental reglaToReturn = null;

		for (Iterator it = cerebro.getReglas().iterator(); it.hasNext();) {
			ReglaElemental reglaInterna = (ReglaElemental) it.next();
			if (reglaInterna.getSituacionInicial().equals(
					cerebro.getSituacionActualInterna())) {
				reglaToReturn = reglaInterna;
				break; // si la encuentro salgo del ciclo.
			}
		}

		// cargo la regla para retornarla.
		parameters.put(Command.REGLA_TO_RETURN, reglaToReturn);
	}

}
